home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 106 - Proboard KEY Floppy - Must be in Drive 1.dsk / SWORD2.SEGS.SHK / SWORDS.2.AUX.S next >
Text File  |  1989-01-26  |  18KB  |  461 lines

  1. ;  _________________________________________________________________________
  2. ; [_                                                                       _]
  3. ;  _]            Swords & Sorcery II -- The Journey Goes Onward           [_
  4. ; [_                                                                       _]
  5. ;  _]                       by Rubber Duck, @1987                         [_
  6. ; [______________________                           ________________________]
  7. ;                       _]   The ] DuckNet [ BBS   [_
  8. ;                      [_      (405)-355-9678       _]
  9. ;                       _]   300/1200/2400 24hrs   [_
  10. ;                      [_____________________________]
  11.  
  12. ; NOTE: Swords & Sorcery II is NOT a Public Domain program.  It is SHAREWARE.
  13. ;       You may copy and distribute S&S II freely, as long as you leave this
  14. ;       notice intact.  The ShareWare fee for S&S II is --> $0.00 <--, but I
  15. ;       do require that  you register your copy.  Send a  postcard with your
  16. ;       name, your handle/alias (if any), your BBS name, phone number, baud,
  17. ;       hours, version of ACOS, whether or not you have  the original Swords
  18. ;       and Sorcery on your system, and  any comments/suggestions/questions.
  19. ;       Send this to:  Rubber Duck, 4812 NE Winfield Cir, Lawton, OK, 73507. 
  20.  
  21. ; At last, lovers of might and magic,  the sequel to Swords & Sorcery.  S&S II
  22. ; provides an expanded and enhanced world for S&S players.  Many more options,
  23. ; much more detail and character individuality are here.  S&S II also supports
  24. ; the  one-key  options  that  are  now  the  GBBS  standard with version 1.3.
  25.  
  26. ; NOTES ABOUT THIS VERSION: Swords & Sorcery II v2.0    (SWORD2.V2.0.BNY)
  27.  
  28. ; This is the first OFFICIAL RELEASE version of S&S II.  This is NOT A BETA-
  29. ; TEST version, it is a COMPLETE game with an ULTIMATE GOAL.  Hopefully this
  30. ; is the first and LAST version of this program I'll have to put out.  I hate
  31. ; those nasty, creepy, crawly BUGS!
  32.  
  33. ; Thanks to Everyone who registered their Beta-Test copies of S&S II
  34.  
  35. ; Special Thanks to /steve schneider of The RainForest BBS for playtesting,
  36. ; betatesting, debugging, putting up with hassle and writing fixes.  Steve,
  37. ; your assistance and support are both priceless. . . thanks.
  38.  
  39. ; To install Swords & Sorcery II on your system:
  40. ;   1) Copy the files SWORDS.2.MAIN.S, SWORDS.2.AUX.S and SWORDS.2.AUX2.S to
  41. ;      your A2: drivespec.
  42. ;   2) Add this line to your system:
  43. ;         if i$="S2" then link "a2:swords.2.main"
  44. ;   3) Change the link.back routine to suit your system.
  45. ;   4) S&S II writes three files, S2.LOG, S2.LAST.PLAYER, and S2.WINNERS to
  46. ;      the b4: drivespec.  Change this to suit your system.
  47. ;   5) You are ready to go!
  48.  
  49. ; Swords & Sorcery II - Auxillary Seg 1
  50.  
  51. ; Professional BBS Custom Edition version 2.0jpe  01/19/89
  52.  
  53.  public towne
  54.  
  55. link.back
  56.  link "a2:swords.2.main","return"
  57. link.term
  58.  recall "h:var"
  59.  link "a:main.seg","term1"
  60. link.dead
  61.  link "a2:swords.2.main","dead"
  62.  
  63. towne
  64.  on nocar goto link.term
  65.  gosub random:tt=x+1:i1=0:i2=0:pt$="":sm=0
  66.  if tt=1  tn$="the Towne of Nyrond":t1$="Gorgomir's Inn":t3$="The One-Eyed Orc"
  67.  if tt=1     t2$="Gorgomir":t4$="Hermelond":t5$="Gar Tynnard"
  68.  if tt=2  tn$="the Towne of Slyph":t1$="The Woodland Inn":t3$="The Unicorn"
  69.  if tt=2     t2$="Swarthy the Elf":t4$="Mwarthy the Elf":t5$="Dwarthy the Elf"
  70.  if tt=3  tn$="the Keep of Silvast":t1$="The Traveler's Inn":t3$="Tyree's Pub"
  71.  if tt=3     t2$="Justinian Bates":t4$="Tyree":t5$="Uliop"
  72.  if tt=4  tn$="the Village of Wermlet":t1$="Igor's Inn":t3$="The Wermlet Bar"
  73.  if tt=4     t2$="Igor":t4$="Rubby the Barkeep":t5$="Herman"
  74.  if tt=5  tn$="the Towne of Kilgore":t1$="The Blue Inn":t3$="The Towne Tavern"
  75.  if tt=5     t2$="Mr. Blue":t4$="The Bartender":t5$="Captain Marxi"
  76.  if tt=6  tn$="the City of Orr":t1$="Remular's Hotel":t3$="The Orr City Tavern"
  77.  if tt=6     t2$="Remular":t4$="Malone":t5$="Smithson"
  78.  if tt=7  tn$="the Towne of Bisselford":t1$="Bisselford Manor":t3$="The Goblet"
  79.  if tt=7     t2$="Swag Mulley":t4$="Chursever the Dwarf":t5$="El Swordo"
  80.  if tt=8  tn$="Brandywine Province":t1$="Merry's Inn":t3$="The Drunken Goblin"
  81.  if tt=8     t2$="Merry":t4$="Samwise the Barkeep":t5$="Frakir"
  82.  if tt=9  tn$="the Keep of Montor":t1$="Montor Motel":t3$="The Overflowing Cup"
  83.  if tt=9     t2$="Calwin":t4$="Mericus":t5$="Kor Mymidon"
  84.  if tt=10 tn$="Swordclash Keep":t1$="Vicious Inn":t3$="Grimthroat's Bar & Pub"
  85.  if tt=10    t2$="Sid Vicious":t4$="Grimthroat the Orc":t5$="Slashknife"
  86.  print \"Welcome to ";tn$;"!!"
  87.  goto towne2.1
  88.  
  89. towne1
  90.  print \"Places to Visit in "tn$":"
  91.  print \"   W)eaponsmith"
  92.  print  "   T)avern"
  93.  print  "   R)est at the Inn"
  94.  if (tt mod 2)=0 print "   S)hieldmaker"
  95.  if (tt mod 3)=0 print "   A)lchemist"
  96.  if (tt mod 3)=1 print "   M)agic Shoppe"
  97.  if (tt mod 3)=2 print "   H)ealer"
  98.  print  "   I)nventory "
  99.  print  "   E)xit "
  100. towne2
  101.  print \"You are in "tn$"."
  102. towne2.1
  103.  free:print \"Where do you go? ";:get i$
  104.  if instr(i$,"eqwtirsham")<>0 then print chr$(8);i$;
  105.  if i$="?" or i$="/" then print chr$(8);"Menu"\:goto towne1
  106.  if i$=""  or i$=chr$(13) then i$="<CR>"
  107.  if i$="w" or i$="W" print "eaponsmith":goto weapon
  108.  if i$="t" or i$="T" print "avern":goto tavern
  109.  if i$="r" or i$="R" print "est at the Inn":goto inn
  110.  if i$="e" or i$="E" print "xit":goto exit.towne
  111.  if i$="q" or i$="Q" print "uit":goto exit.towne
  112.  if i$="i" or i$="I" print "nventory":gosub inventory:goto towne2
  113.  if (tt mod 2)=0 then if i$="S" print "hieldmaker":goto shield
  114.  if (tt mod 3)=0 then if i$="A" print "lchemist":goto alchemist
  115.  if (tt mod 3)=1 then if i$="M" print "agic Shoppe":goto magic
  116.  if (tt mod 3)=2 then if i$="H" print "ealer":goto healer
  117.  print \\"Sorry, "chr$(34);i$;chr$(34)" is not a command.":goto towne2
  118.  
  119. weapon
  120.  print \"Welcome to the Weaponsmith's!"
  121.  print \t5$" says: 'What is your interest?'"
  122.  print \"  1) Silver Dagger       10 gold"
  123.  print  "  2) Iron Mace           20 gold"
  124.  print  "  3) Steel Sword         30 gold"
  125.  print  "  4) Platinum Battleaxe  40 gold"
  126.  print  "(Your current weapon: ";
  127.  if (wp) print wp$;")":else print "Bare Hands)"
  128. weapon1
  129.  print \"Which? ";:get i$:x=val(i$):wf$=""
  130.  if x=1 wf$="Silver Dagger":wf=3
  131.  if x=2 wf$="Iron Mace":wf=4
  132.  if x=3 wf$="Steel Sword":wf=5
  133.  if x=4 wf$="Platinum Battleaxe":wf=6
  134.  if (x=5) and (tt=8) then wf$="Enchanted Sword":wf=7
  135.  if wf$="" print chr$(8);"None":else print chr$(8);wf$
  136.  if wf$="" print \"Okay.  Thanks for stopping by!":goto towne2
  137.  if (x*10)>gp print "Sorry, friend, but you haven't enough gold!":goto weapon1
  138.  print \t5$" says, 'Good choice!  There"
  139.  print "isn't a finer "wf$" to be"
  140.  print "had and it's only "x*10" gold!'"
  141.  print \"Will you buy it? ";:get i$
  142.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  143.  if i$<>"Y" print \"Oh well, maybe another time.":goto weapon1
  144.  gp=gp-(x*10):wp$=wf$:wp=wf:print \"May it serve you well!":goto towne2
  145.  
  146. tavern
  147.  gosub random:y=x+4:y=y/2:y=y+1
  148.  print \"Welcome to "t3$"!!"
  149.  print \t4$" says, 'Drinks are "y" gold."
  150.  print "   Can I get you one, friend?' ";:get i$
  151. tavern0
  152.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  153.  if (i$<>"Y") and (tt=10) print \"Then get out, scum!":goto towne2
  154.  if i$<>"Y" print \"Well, have a nice day!":goto towne2
  155. tavern1
  156.  input @1 \"You pay how much: " i$:x=val(i$)
  157.  if x>gp print \"You only have "gp" gold!":goto tavern1
  158.  if (x<y) and (tt=10) goto grimthroat
  159.  if x<y print \"Get out of here!":goto towne2
  160.  gp=gp-x:gosub random:x=x+1
  161.  if x=1 print "Thy strength will aid ye much in battle!"
  162.  if x=2 print "Thy psyche shall limit thy magicks!"
  163.  if x=3 print "If thou are lucky, many dangers wilt thou avoid!"
  164.  if x=4 print "The magicked blade dost strike the deadliest blow!"
  165.  if x=5 print "Frakir the Weaponsmith sells #5 Enchanted Swords!"
  166.  if (x=6) and (tt<>10) print "Don't shortchange Grimthroat!  He's mean!"
  167.  if (x=6) and (tt=10) print "I HATE a cheap adventurer!"
  168.  if x=7 print "There be a fair princess in the Dark Tower"
  169.  if x=8 print "The King is actually the Evil One!"
  170.  if x=9 print "You must slay the Evil One to fulfill your quest!"
  171.  if x=10 print "You can fulfill your quest by <A>ttacking the Evil One!"
  172.  print \t4$" says, 'Another drink?' ";:get i$:goto tavern0
  173. grimthroat
  174.  mn$="Grimthroat the Orc":mp=16:mx=16:md=6
  175.  print \"What??  Try to shortchange me, eh?  Scum!!  I'll kill you!"
  176.  gosub battle:goto towne2
  177.  
  178. inn
  179.  if i1=1 print \"You've already spent the night here.":goto towne2
  180.  print \"Welcome to "t1$","\"the best lodging in "tn$"!!"
  181.  if i2=1 then goto inn.2:else i2=1
  182.  gosub random:y=x:gosub random:y=y+x:y=y+5:if y>20 then y=20
  183. inn.2
  184.  print \t2$" says, 'A room for the night is only "y" gold.'"
  185.  print \"Do you take it? ";:get i$
  186.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  187.  if i$<>"Y" print \"Okay.  Farewell!":goto towne2
  188.  if y>gp print \"Why, you haven't enough gold!  Out, beggar!":goto towne2
  189.  gp=gp-y:print \"Sleep well, sir.":i1=1
  190.  print \"Night falls....":for x=1 to 1000:next
  191.  st=st+1:if st=11 then st=10
  192.  ps=ps+1:if ps=11 then ps=10
  193.  hp=hp+2:if hp>30 then hp=30
  194.  print \"You awake feeling refreshed and invigorated.":goto towne2
  195.  
  196. shield
  197.  print \"Welcome to the Shieldmaker's!"
  198.  print \"The Shieldmaker says, "
  199.  if sh<>0 print "  'I see you have that "sh$" already.'"
  200.  if sm<>0 goto shield.1
  201.  gosub random:sm=x:gosub random:sm=sm+x:sm=sm+10
  202.  gosub random:sf=x mod 2:sf=sf+1
  203.  if sf=1 sf$="Good Shield":else sf$="Excellent Shield"
  204. shield.1
  205.  print "  'I have this "sf$" for only "sm" gold.'"
  206.  print \"Do you want it? ";:get i$
  207.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  208.  if i$<>"Y" print \"Well, leave then!":goto towne2
  209.  if sm>gp print \"I'm sorry, but you don't have enough gold!":goto towne2
  210.  gp=gp-sm:sh=sf:sh$=sf$:print \"There!  May it serve you well.":goto towne2
  211.  
  212. alchemist
  213.  print \"Welcome to the Alchemy Shoppe!":gosub random:x=x+10
  214.  if (po=0) or (po$<>"Unidentified Potion") goto alchem.1
  215.  print \"I see you have an unknown elixir!  I can Identify it for you,"
  216.  print  "but it will cost you "x" gold."
  217.  if x>gp print \"I see you can't afford my services...good day!":goto towne2
  218.  print \"Do you want my services? ";:get i$
  219.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  220.  if i$<>"Y" then print "Well, good day, then.":goto towne2
  221.  gp=gp-x
  222.  if po=1 po$="Potion of Healing"
  223.  if po=2 po$="Bottle of Poison"
  224.  if po=3 po$="Potion of Power"
  225.  if po=4 po$="Potion of Intelligence"
  226.  if po=5 po$="Potion of Feebleness"
  227.  if po=6 po$="Potion of Idiocy"
  228.  print \"Ah, let me see...yes!  What you've got there is a "po$"!!"
  229.  print \"Thanks for stopping by, friend.  Have a nice day!":goto towne2
  230. alchem.1
  231.  if po<>0 print \"I see you've already got a potion."
  232.  if pt$<>"" goto alchem.2
  233. pickpotion
  234.  x$=rnd$:x=random(105):pt=x mod 6:pt=pt+1:if pt=po goto pickpotion
  235.  if pt=1 pt$="Potion of Healing"
  236.  if pt=2 pt$="Bottle of Poison"
  237.  if pt=3 pt$="Potion of Power"
  238.  if pt=4 pt$="Potion of Intelligence"
  239.  if pt=5 pt$="Potion of Feebleness"
  240.  if pt=6 pt$="Potion of Idiocy"
  241.  gosub random:pp=x:gosub random:pp=pp+x:pp=pp+10
  242. alchem.2
  243.  if po<>0 print \"I'll trade you for this "pt$".":pp=0
  244.  if po=0 print \"I will sell you a "pt$" for "pp" gold."
  245.  print \"Do you agree to this? ";:get i$
  246.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  247.  if i$<>"Y" print \"Too bad, I'm the only dealer in towne!":goto towne2
  248.  if pp>gp print \"Sorry, but you can't afford it.  Bye!":goto towne2
  249.  gp=gp-pp:po=pt:po$=pt$:print \"It's a deal!  So long, friend.":goto towne2
  250.  
  251. magic
  252.  print \"Welcome to the Magic Shoppe!"
  253.  setint(" ")
  254.  print '
  255. We have the following spells...
  256.  
  257. 1) Healing        10 gold
  258. 2) Strength       15 gold
  259. 3) Psyche         15 gold
  260. 4) Luck           25 gold
  261. 5) Teleport       25 gold
  262. 6) Fireball       20 gold'
  263.  setint("")
  264. magic.0
  265.  print \"Your interest? ";:get i$:x=val(i$)
  266.  if ((x=0) or (x>6)) print chr$(8);"None"
  267.  if ((x=0) or (x>6)) print \"Well, maybe another time then.":goto towne2
  268.  if x=1 x$="Healing":y=10
  269.  if x=2 x$="Strength":y=15
  270.  if x=3 x$="Psyche":y=15
  271.  if x=4 x$="Luck":y=25
  272.  if x=5 x$="Teleport":y=25
  273.  if x=6 x$="Fireball":y=20
  274.  print chr$(8);x$
  275.  if y>gp print \"Sorry, but you cannot afford the "x$" spell!":goto magic.0
  276.  print \"Ahh, the mystical "x$" spell..."
  277. magic.1
  278.  if s1=0 then s1=x:s1$=x$:gp=gp-y:goto magic.2
  279.  if s2=0 then s2=x:s2$=x$:gp=gp-y:goto magic.2
  280.  if s3=0 then s3=x:s3$=x$:gp=gp-y:goto magic.2
  281.  print \"You already know three spells!"
  282.  print \"Which shall you replace?"
  283.  print \"1) "s1$\"2) "s2$\"3) "s3$\"4) Don't buy the "x$" spell"
  284.  print \"Which? ";:get i$
  285.  if i$="1" then s1=0:print chr$(8);"Replace "s1$:goto magic.1
  286.  if i$="2" then s2=0:print chr$(8);"Replace "s2$:goto magic.1
  287.  if i$="3" then s3=0:print chr$(8);"Replace "s3$:goto magic.1
  288.  print chr$(8);"None"
  289.  print \"Alright.  Happy casting!":goto towne2
  290. magic.2
  291.  print \"The wizard clears your mind...."
  292.  print \"He chants the mystic words...."
  293.  print \"The "x$" spell is yours!":goto towne2
  294.  
  295. ; *** healer
  296.  
  297. healer
  298.  print \"Welcome to the Holy Healer!"
  299.  if hp>=25 print \"Thou art healthy!  Return only if ye are truly in need."
  300.  if hp>=25 goto towne2
  301.  y=30-hp:y=y*3
  302.  print \"Brave adventurer, we shall heal all thy wounds for a mere "y" gold."
  303.  print \"Wilt thou make this offering? ";:get i$
  304.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  305.  if i$<>"Y" print \"Then leave this place at once!":goto towne2
  306.  if y>gp then y=gp:print \"You have only "y" gold.  We will do what we can."
  307.  print \"Ahh....Ooohhh....Ummm.....":gp=gp-y:hp=hp+(y/3):if hp>30 hp=30
  308.  print \"The healing is complete.  Fare thee well.":goto towne2
  309.  
  310. exit.towne
  311.  print \"You leave "tn$"."
  312.  goto link.back
  313.  
  314. ; *** battle
  315.  
  316. battle
  317.  print \"The battle begins!":ba=1
  318.  print \"You and "mn$" circle for position!"
  319. who.first
  320.  gosub random:x=x+(st/5)
  321.  if x<=5 gosub monstermove:gosub playermove:goto who.first
  322.  gosub playermove:gosub monstermove:goto who.first
  323.  
  324. battlexit
  325.  ba=0:return
  326.  
  327. playermove
  328.  print \"Your move!  ";
  329. player0
  330.  print "Your options are:"
  331.  print \"   F)lee"
  332.  if (s1+s2+s3) print  "   C)ast a Spell"
  333.  if (po) print  "   D)rink a Potion"
  334.  print  "   A)ttack Enemy with ";
  335.  if (wp) print wp$:else print "Bare Hands"
  336.  print \"What do you do? ";:get i$
  337.  if i$="F" print chr$(8);"Flee"
  338.  if i$="C" print chr$(8);"Cast a Spell"
  339.  if i$="D" print chr$(8);"Drink a Potion"
  340.  if i$="A" print chr$(8);"Attack Enemy"
  341.  if ((i$="F") and (hp>10)) then xp=xp-3:if xp<1 xp=1
  342.  if i$="F" gosub flee:print "You manage to escape!":pop:goto battlexit
  343.  if i$="C" gosub cast.spell:goto endplayermove
  344.  if i$="D" gosub drink.potion:goto endplayermove
  345.  if i$<>"A" print \\"Sorry, ";chr$(34);i$;chr$(34);" is invalid."\:goto player0
  346.  gosub random:print \"You attack with your ";
  347.  if (wp) print wp$:else print "Bare Hands"
  348.  print:x=x+(st/3):if wp=5 then x=x+1
  349.  if x<=5 print "You missed!":goto endplayermove
  350.  gosub random:x=x/5:x=x+wp:x=x+(st/5)
  351.  if not(info(2)) tone (50,50):tone (50,50):else print chr$(7);
  352.  print "You hit him for "x" damage!!!"
  353.  if x>mp then mp=0:else mp=mp-x
  354. endplayermove
  355.  if mp<1 then pop:print "You've finished "mn$" off!!!!"
  356.  if mp<1 then xp=xp+mx:print \"You find 30 bags of gold!"
  357.  if mp<1 then gp=gp+30:goto battlexit
  358.  print "He has "mp" hit points now...":return
  359.  
  360. monstermove
  361.  print \mn$" attacks!"
  362.  gosub random:x=x+(lu/5)
  363.  if x>5 print "He misses you!":return
  364.  print "A hit!!  ";:if not(info(2)) tone (200,100):else print chr$(7);chr$(7);
  365.  y=5-x:x=random(100):x=x mod md:x=x+1:x=x+(y/2)
  366.  if sh>=x then x=1:else x=x-sh
  367.  if x>hp then hp=0:else hp=hp-x
  368.  if hp<1 print \\"You've had it!":pop:pop:goto link.dead
  369.  if x<=2 print "Only a flesh wound...":goto endmonst
  370.  if x<=4 print "The wound is not bad...":goto endmonst
  371.  print "A vicious attack!"
  372. endmonst
  373.  print "You have "hp" hit points now...":return
  374.  
  375. flee
  376.  gosub random:if x<5 return
  377.  print \mn$" blocks your escape!!":pop:goto endplayermove
  378.  
  379. ; *** inventory
  380.  
  381. inventory
  382.  print \'
  383. Stats:
  384.  Strength: 'st'  Psyche: 'ps'  Luck: 'lu'
  385.  Hit Points: 'hp'  Experience Points: 'xp'
  386.  
  387. Inventory:'
  388.  if (wp) print " "wp$
  389.  if (sh) print " "sh$
  390.  if (po) print " "po$
  391.  if (ky) print " Golden Key"
  392.  if (ln) print " Lantern"
  393.  if (s1) or (s2) or (s3) print " Spells:"
  394.  if (s1) print "  "s1$
  395.  if (s2) print "  "s2$
  396.  if (s3) print "  "s3$
  397.  if (pr) or (wm) or (dr) print " Companions:"
  398.  if (pr) print "  The Princess"
  399.  if (dr) print "  The Dryad Guide"
  400.  if (wm=1) print "  1 woman"
  401.  if (wm>1) print "  "wm" women"
  402.  if (gp=0) print " No gold"
  403.  if (gp=1) print " 1 bag of gold"
  404.  if (gp>1) print " "gp" bags of gold"
  405.  print:return
  406.  
  407. ; *** potions & spells
  408.  
  409. drink.potion
  410.  if not(po) print \"You aren't carrying a Potion!":return
  411.  print \"You are carrying: "po$
  412.  print \"Drink it now? ";:get i$
  413.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  414.  if i$<>"Y" print \"You return the Potion to your pack.":return
  415.  print \"Gulp...gulp...gulp...";
  416.  if (po=1) print "ahh!  How refreshing!":hp=hp+10:if hp>30 hp=30
  417.  if (po=2) print "ugh!  Blah!  Poison!":if hp>10 hp=hp-10:else hp=1
  418.  if (po=3) print "umm!  How invigorating!":st=st+2:if st>10 st=10
  419.  if (po=4) print "ooh!  How enlightening!":ps=ps+2:if ps>10 ps=10
  420.  if (po=5) print "nnnuh!  You feel weak!":if st>2 st=st-2:else st=1
  421.  if (po=6) print "duh?  Duh?  Yuk!":if ps>2 ps=ps-2:else ps=1
  422.  po$="":po=0:return
  423.  
  424. cast.spell
  425.  if not(s1+s2+s3) print \"You don't know any Spells!":return
  426.  print \"You may cast the following:"
  427.  if (s1) print "1) "s1$
  428.  if (s2) print "2) "s2$
  429.  if (s3) print "3) "s3$
  430.  print "4) Don't cast anything"
  431.  print \"Which shall you cast? ";:get i$
  432.  x=val(i$):if (x=0) or (x=4) goto cast.none
  433.  if (x=1) and not(s1) goto cast.none
  434.  if (x=2) and not(s2) goto cast.none
  435.  if (x=3) and not(s3) goto cast.none
  436.  if x=1 sc$=s1$:sc=s1:s1$="":s1=0
  437.  if x=2 sc$=s2$:sc=s2:s2$="":s2=0
  438.  if x=3 sc$=s3$:sc=s3:s3$="":s3=0
  439. spell.effects
  440.  gosub random:x=x+(ps/2)
  441.  if x<=5 print \"Spell failed!":return
  442.  print \"Spell succeeded!"
  443.  if sc=1 print "You feel refreshed!":hp=hp+10:if hp>30 hp=30
  444.  if sc=2 print "You feel invigorated!":st=st+2:if st>10 st=10
  445.  if sc=3 print "You feel enlightened!":ps=ps+2:if ps>10 ps=10
  446.  if sc=4 print "You feel luckier!":lu=lu+2:if lu>10 lu=10
  447.  if sc=5 print "You are Teleported away!":if ba=1 then pop:pop:ba=0
  448.  if sc=5 goto towne2
  449.  if sc<>6 return
  450.  if (ba=0) print "Your Fireball shoots away, wasted!":return
  451.  print "Your Fireball hits the "mn$"!!":if mp>4 then mp=mp-5:else mp=0
  452.  return
  453. cast.none
  454.  print chr$(8);"None":return
  455.  
  456. ; seed random number generator and
  457. ; get a random number zero to nine
  458.  
  459. random
  460.  x$=rnd$:x=random(100):x=x mod 10:return
  461.